libcurl Post transfer info

Post transfer info

libcurl 전송이 “쉬운 핸들”과 어떻게 연관되어 있는지 기억하십시오! 각 전송에는 이러한 핸들이 있으며 전송이 완료되면 핸들을 정리하거나 다른 전송에 재사용하기 전에 이전 작업에서 정보를 추출하는 데 사용할 수 있습니다.

이 작업을 수행하는 친구를 curl_easy_getinfo()라고 하며 관심 있는 특정 정보를 알려주면 가능한 경우 해당 정보를 반환합니다.

이 함수를 사용할 때 원하는 정보와 답을 담을 변수에 대한 포인터를 쉽게 처리할 수 있습니다. 올바른 유형의 변수에 대한 포인터를 전달해야 합니다. 그렇지 않으면 일이 엉뚱한 방향으로 갈 위험이 있습니다. 이러한 정보 값은 전송이 완료된 후 제공되도록 설계되었습니다.

받는 데이터는 long, ‘char’, ‘struct curl_slist’, double 또는 socket일 수 있습니다.

이전 HTTP 전송에서 Content-Type: 값을 추출하는 방법은 다음과 같습니다.

1
2
3
CURLcode res;
char *content_type;
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &content_type);

해당 연결에 사용된 로컬 포트 번호를 추출하려면 다음을 수행하십시오.

1
2
3
CURLcode res;
long port_number;
res = curl_easy_getinfo(curl, CURLINFO_LOCAL_PORT, &port_number);

이용 가능한 정보

Getinfo option Type Description
CURLINFO_ACTIVESOCKET curl_socket_t 세션의 활성 소켓
CURLINFO_APPCONNECT_TIME double 시작부터 SSL/SSH 핸드셰이크가 완료될 때까지의 시간
CURLINFO_APPCONNECT_TIME_T curl_off_t 시작부터 SSL/SSH 핸드셰이크가 완료될 때까지의 시간(마이크로초)
CURLINFO_CERTINFO struct curl_slist * 인증서 체인
CURLINFO_CONDITION_UNMET long 시간 조건이 충족되었는지 여부
CURLINFO_CONNECT_TIME double 시작부터 원격 호스트 또는 프록시가 완료될 때까지의 시간
CURLINFO_CONNECT_TIME_T curl_off_t 시작부터 원격 호스트 또는 프록시가 완료될 때까지의 시간(마이크로초)
CURLINFO_CONTENT_LENGTH_DOWNLOAD double Content-Length 헤더의 콘텐츠 길이
CURLINFO_CONTENT_LENGTH_UPLOAD double 업로드 크기
CURLINFO_CONTENT_TYPE char * Content-Type 헤더의 콘텐츠 유형
CURLINFO_COOKIELIST struct curl_slist * 알려진 모든 쿠키 목록
CURLINFO_EFFECTIVE_METHOD char * 마지막으로 사용한 HTTP 요청 방법
CURLINFO_EFFECTIVE_URL char * 마지막으로 사용한 URL
CURLINFO_PROXY_SSL_VERIFYRESULT long 프록시 인증서 확인 결과
CURLINFO_PROXYAUTH_AVAIL long 사용 가능한 HTTP 프록시 인증 방법
CURLINFO_REDIRECT_COUNT long 팔로우한 총 리디렉션 수
CURLINFO_REDIRECT_TIME double 최종 전송 전 모든 리디렉션 단계에 소요된 시간
CURLINFO_REDIRECT_TIME_T curl_off_t 최종 전송 전 모든 리디렉션 단계에 소요된 시간(마이크로초)
CURLINFO_REDIRECT_URL char * 리디렉션을 활성화한 경우 리디렉션을 통해 이동할 URL
CURLINFO_REQUEST_SIZE long 발행된 HTTP 요청에서 보낸 바이트 수
CURLINFO_RESPONSE_CODE long 마지막으로 받은 응답 코드
CURLINFO_RETRY_AFTER curl_off_t 응답 Retry-After: 헤더의 값
CURLINFO_RTSP_CLIENT_CSEQ long 다음에 사용될 RTSP CSeq
CURLINFO_RTSP_CSEQ_RECV long RTSP CSeq 마지막 수신
CURLINFO_RTSP_SERVER_CSEQ long 다음에 예상되는 RTSP CSeq
CURLINFO_RTSP_SESSION_ID char * RTSP 세션 ID
CURLINFO_SCHEME char * 연결에 사용된 체계
CURLINFO_SIZE_DOWNLOAD double 다운로드된 바이트 수
CURLINFO_SIZE_UPLOAD double 업로드된 바이트 수
CURLINFO_SPEED_DOWNLOAD double 평균 다운로드 속도
CURLINFO_SPEED_UPLOAD double 평균 업로드 속도
CURLINFO_SSL_ENGINES struct curl_slist * OpenSSL 암호화 엔진 목록
CURLINFO_SSL_VERIFYRESULT long 인증서 확인 결과
CURLINFO_STARTTRANSFER_TIME double 시작부터 첫 번째 바이트가 수신될 때까지의 시간
CURLINFO_STARTTRANSFER_TIME_T curl_off_t 시작부터 첫 번째 바이트가 수신될 때까지의 시간(마이크로초)
CURLINFO_TLS_SSL_PTR struct curl_slist * 추가 처리에 사용할 수 있는 TLS 세션 정보
CURLINFO_TOTAL_TIME double 이전 전송의 총 시간
CURLINFO_TOTAL_TIME_T curl_off_t 이전 전송의 총 시간(마이크로초)
공유하기